/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.bc;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.cip.esymons.eventos.be.DetalleEncuesta;
import org.cip.esymons.eventos.be.ModuloCurso;

/**
 *
 * @author oscar
 */
@Stateless
public class DetalleEncuestaFacade implements DetalleEncuestaFacadeLocal {

    @PersistenceContext
    private EntityManager em;

    public void create(DetalleEncuesta detalleEncuesta) {
//        try {
            em.persist(detalleEncuesta);
//        } catch (Exception ex) {
//            System.out.println("FATAL: " + ex.getMessage());
//        }
    }

    public void edit(DetalleEncuesta detalleEncuesta) {
        em.merge(detalleEncuesta);
    }

    public void remove(DetalleEncuesta detalleEncuesta) {
        em.remove(em.merge(detalleEncuesta));
    }

    public DetalleEncuesta find(Object id) {
        return em.find(DetalleEncuesta.class, id);
    }

    public List<DetalleEncuesta> findAll() {
        return em.createQuery("select object(o) from DetalleEncuesta as o").getResultList();
    }

    public List<DetalleEncuesta> listarResultadosxModulo(ModuloCurso mod) {
        List<DetalleEncuesta> lista = new ArrayList<DetalleEncuesta>();
        for (int i = 1; i <= 13; i++) {
            DetalleEncuesta det = new DetalleEncuesta();
            for (int j = 1; j <= 5; j++) {
                Vector v = (Vector) em.createNativeQuery("call sp_resultado_encuesta(?,?,?)").setParameter(1, j).setParameter(2, mod.getModCodigo()).setParameter(3, i).getSingleResult();               
                switch (j) {
                    case 1:
                        det.setResultado5(((Long) v.get(0)).intValue());
                        break;
                    case 2:
                        det.setResultado4(((Long) v.get(0)).intValue());
                        break;
                    case 3:
                        det.setResultado3(((Long) v.get(0)).intValue());
                        break;
                    case 4:
                        det.setResultado2(((Long) v.get(0)).intValue());
                        break;
                    case 5:
                        det.setResultado1(((Long) v.get(0)).intValue());
                        break;
                }
                det.setDenPregunta((String) v.get(1).toString());
            }
            lista.add(det);
        }
        return lista;
    }
}
